namespace OhioState.Graphics
{
    //
    // Compositing or Blending
    //
    public enum BlendMode
    {
        OFF, OVER, ADD, MAX, MIN, REPLACE, TRANSPARENT
    }
    //
    // Depth Testing
    //
    public enum DepthMode
    {
        OFF, ON
    }
    //
    // Alpha Testing
    //
    public enum AlphaMode
    {
        OFF, LESS_THAN, LESS_THAN_OR_EQUAL, EQUAL, GREATER_THAN_OR_EQUAL, GREATER_THAN, NOT_EQUAL
    }
    //
    // Stencil Operations
    //
    //TODO: ADD Stencil tests as needed. Try to not mimic OpenGL, but provide higher-level conditions.

    /// <summary>
    /// Interface for Raster operations
    /// </summary>
    public interface IRasterOps
    {
        /// <summary>
        /// Get Set Accessor for Blending 
        /// </summary>
        BlendMode Blending { get; set; }
        /// <summary>
        /// Get Set Accessor for Depth test
        /// </summary>
        DepthMode DepthTest { get; set; }
        /// <summary>
        /// Get Set Accessor for Alpha test
        /// </summary>
        AlphaMode AlphaTest { get; set; }
    }
}
